16. LEFT 和 RIGHT JOIN
SOLUTION:
- 如果我们更改 **FROM** 和 **JOIN** 语句中的表格,则 **LEFT JOIN** 和 **RIGHT JOIN** 的结果一样。
- **LEFT JOIN** 将**至少**返回所有 **INNER JOIN** 返回的所有行。
- **JOIN** 和 **INNER JOIN** 是一样的。
- **LEFT OUTER JOIN** 和 **LEFT JOIN** 是一样的。

以上是两个小的表格,用来检测下你的 JOIN 知识。你可以点击图片,看的更清楚。
Country 有 6 行和 2 列:
- countryid 和 countryName
State 有 6 行和 3 列:
- stateid 、 countryid 和 stateName
根据上述表格判断以下问题的答案。
QUIZ QUESTION: :
将每个语句与所描述的项相匹配。
ANSWER CHOICES:
描述 |
项 |
---|---|
Country.countryid |
|
State.countryid |
|
State.stateName |
|
Country.countryName |
|
State.stateid |
SOLUTION:
描述 |
项 |
---|---|
Country.countryid |
|
State.countryid |
|
State.stateid |

上面的两个表格只是为了避免滚动幅度太大,如果你要执行以下查询:
SELECT c.countryid, c.countryName, s.stateName
FROM Country c
JOIN State s
ON c.countryid = s.countryid;
QUIZ QUESTION: :
将查询结果与说明相匹配。
ANSWER CHOICES:
描述 |
结果 |
---|---|
6 |
|
1 |
|
7 |
|
3 |
|
8 |
|
5 |
|
0 |
|
4 |
|
12 |
|
2 |
SOLUTION:
描述 |
结果 |
---|---|
6 |
|
3 |
|
0 |
|
2 |

上面的两个表格同样只是为了避免滚动幅度太大,如果你要执行以下查询:
SELECT c.countryid, c.countryName, s.stateName
FROM Country c
LEFT JOIN State s
ON c.countryid = s.countryid;
QUIZ QUESTION: :
将查询结果与说明相匹配。
ANSWER CHOICES:
描述 |
结果 |
---|---|
6 |
|
7 |
|
2 |
|
3 |
|
4 |
|
1 |
|
8 |
|
10 |
|
9 |
|
0 |
|
5 |
SOLUTION:
描述 |
结果 |
---|---|
2 |
|
3 |
|
1 |
|
8 |